/***************************************************************************************
* Copyright (c) 2014-2022 Zihao Yu, Nanjing University
*
* NEMU is licensed under Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
*          http://license.coscl.org.cn/MulanPSL2
*
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
*
* See the Mulan PSL v2 for more details.
***************************************************************************************/

#include <common.h>
#include "monitor/sdb/sdb.h"
#include <string.h>

void init_monitor(int, char *[]);
void am_init_monitor();
void engine_start();
int is_exit_status_bad();

int main(int argc, char *argv[]) {

  /* Initialize the monitor. */
#ifdef CONFIG_TARGET_AM
  am_init_monitor();
#else
  init_monitor(argc, argv);
#endif
// goto main_task;
    // FILE *fp = fopen("./tools/gen-expr/input", "r");
    // assert(fp != NULL);
    // while(feof(fp) == 0) {
    //   int res = 0;
    //   static char str[65536] = {0};

    //   int r = fscanf(fp,"%d %s",&res,str);
    //   if(r) r = r;
    //   if(strlen(str) > 3200) continue;
    //   printf("......................\n");
    //   bool success = false;
    //   word_t exprv = expr(str,&success);
    //   success = exprv == res;
    //   if(success == false) {
    //     printf("expr:%s = \n",str);
    //     printf("%d %ld %s\n",res,exprv,success?"true":"false");
    //   }
    // }
    // fclose(fp);
    // return 0;
// main_task:
  /* Start engine. */
  engine_start();
  
  return is_exit_status_bad();
}
